package jp.matome.activity;

import java.util.ArrayList;

import jp.matome.adapter.RssListAdapter;
import jp.matome.bean.Item;
import jp.matome.task.RssParserTask;
import jp.matome.util.Define;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;

public class RssReaderActivity extends ListActivity {
	public static final int MENU_ITEM_RELOAD = Menu.FIRST;
	private ArrayList<Item> mItems;
	private RssListAdapter mAdapter;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.matome_main);

		// Itemオブジェクトを保持するためのリストを生成し、アダプタに追加する
		mItems = new ArrayList<Item>();
		mAdapter = new RssListAdapter(this, mItems);

		// タスクを起動する(一回のみ)
		RssParserTask task = new RssParserTask(this, mAdapter);
		task.execute(Define.RSS_FEED_URL);
	}

	// リストの項目を選択した時の処理
	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		Item item = mItems.get(position);
		Intent intent = new Intent(this, ItemDetailActivity.class);
		intent.putExtra("TITLE", item.getTitle());
		intent.putExtra("DESCRIPTION", item.getDescription());
		intent.putExtra("LINK", item.getmLink());
		startActivity(intent);
	}

	// MENUボタンを押したときの処理
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		boolean result = super.onCreateOptionsMenu(menu);
		menu.add(0, MENU_ITEM_RELOAD, 0, "更新");
		return result;
	}

	// MENUの項目を押したときの処理
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
			// 更新
			case MENU_ITEM_RELOAD:
				// アダプタを初期化し、タスクを起動する
				mItems = new ArrayList<Item>();
				mAdapter = new RssListAdapter(this, mItems);
				RssParserTask task = new RssParserTask(this, mAdapter);
				task.execute(Define.RSS_FEED_URL);
				return true;
		}
		return super.onOptionsItemSelected(item);
	}
}
